Computers are powerful tools of use in storing and providing access to vast amounts of information. Databases are a common mechanism for storing information on computer systems while providing easy access to users. Typically, a database is an organized collection of information stored as “records” having “fields” of information. (e.g., a restaurant database may have a record for each restaurant in a region, where each record contains fields describing characteristics of the restaurant, such as name, address, type of cuisine, and the like).
Often, databases may use clusters of computers in order to be able to store and access large amounts of data. This may require that the state of the computer clusters be managed. One approach that may be taken when attempting to solve this problem is to employ a team of professionals that may have access to the tools necessary to maintain the system either on-site or remotely. However, there may be a number of obstacles that must be faced when attempting to use such a method with databases of a larger scale.
As such, there is a continuing need for improved methods of fault tolerance and high availability at a large scale.